package edu.usm.predatorwars;

import java.util.List;
import java.util.Set;

import edu.predatorwars.shared.models.Board;
import edu.predatorwars.shared.models.Creature;
import edu.predatorwars.shared.models.Move;
import edu.predatorwars.shared.models.Player;

/**
 * This is a call back interface that clients need to implement
 * These methods will be called by the client mask
 */
public interface Playable {
	
	void onBoardUpdate(Board board, List<Player> playerList, int myX, int myY);
	
	void onGameLoadingState(List<Player> players);
	
	void onGameStartState(List<Player> players);
	
	void onGameEndState(List<Player> players);
	
	Move onMove(Set<Move> availableMovements, int myX, int myY);

	Creature onSelectCreature(List<Creature> creatures);
}
